package src.servletController;

import java.io.IOException;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import src.servletService.ServiceFactory;
import src.servletUtils.MyUtils;
import src.servletbean.UsersBean;

public class LoginServlet extends HttpServlet {

	private static final long serialVersionUID = 1L;

//	@Override
//	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//		// 响应客户端的get请求
//		// 一般doget和dopost串联起来进行处理
//		this.doPost(req, resp);
//	}
//
//	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//		// 响应客户端的post请求
//		this.doPost(req, resp);
//	}

	@Override
	protected void service(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException, IOException {
		// 对客户端请求进行处理（可以替代doget和dopost）
		// 调用model层进行客户端请求的响应处理
		System.out.println("已经接收到客户端发送过来的请求service。。。。");
		//接收客户端数据请求时进行编码设置，防止中文乱码
       //arg0.setCharacterEncoding("UTF-8");//使用了过滤器，用filter已经进行编码，进行配置文件修改就可以
		
		//使用request的getParameter方法获取前台页面的表单数据
		//用户名
		String strUserName=arg0.getParameter("inputUsers");
		System.out.println("输入的用户名："+strUserName);
		//密码
		String strUserPsw=arg0.getParameter("inputPassword");
		
		//将表单数据填充到实体对象属性中
				UsersBean usersB = (UsersBean) MyUtils.getNewInstance(UsersBean.class);
				usersB.setUsername(strUserName);
				usersB.setUserpsw(strUserPsw);
				
				
				//登录验证
				List<UsersBean> lstUsers = ServiceFactory.getLoginServiceInstance().isLogined2(usersB);
				// 登录失败跳转页面
				String strResultPage = "forheadlogin.jsp";
				//根据登录验证结果进行页面跳转
				if(lstUsers !=null && lstUsers.size()>0){
					//登录成功
					strResultPage = "logined/logined.jsp";
					//使用session将控制层的数据 传递到前台页面 使用el表达式进行解析
					arg0.getSession().setAttribute("loginedUsersB", lstUsers.get(0));
				}
				//使用forward进行页面跳转
				arg0.getRequestDispatcher(strResultPage).forward(arg0, arg1);
	}

	@Override
	public void destroy() {
		// Servlet销毁时的处理
		super.destroy();
	}

	@Override
	public void init() throws ServletException {
		// Servlet初始化时的处理
		super.init();
	}
}
